package com.gxa.modules.service.lx.impl;

import com.gxa.common.constant.PageInfo;
import com.gxa.common.vo.R2;
import com.gxa.modules.mapper.lx.GoodsMapper;
import com.gxa.modules.mapper.lx.GoodsTypeMapper;
import com.gxa.modules.pojo.GoodsType;
import com.gxa.modules.service.lx.GoodsService;
import com.gxa.modules.service.lx.GoodsTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Created with IntelliJ IDEA.
 * User: zls
 * Date: 2021/12/28 08:54:19
 * Description:
 * Version: V1.0
 */

@Service
public class GoodsTypeServiceImpl implements GoodsTypeService {




    @Autowired(required = false)
    private GoodsTypeMapper goodsTypeMapper  ;

    @Override
    public R2 queryGoodsTypeList() {
        List<GoodsType> list= goodsTypeMapper.queryGoodsTypeList();
        GoodsType goodsTypeList = new GoodsType();

        for(GoodsType item : list){
            if(item.getGoodsPid()==0){
                goodsTypeList.getGoodsTypeList().add(item);
            }
        }
        for(GoodsType item : goodsTypeList.getGoodsTypeList()){
            for(GoodsType i : list){
                if(i.getGoodsPid()==item.getGoodsTypeid()){
                    item.getGoodsTypeList().add(i);
                }
            }

        }
        R2 r2 = new R2();
        r2.setCode(200);
        r2.setMsg("查询成功");
        r2.setData(goodsTypeList);
        return r2;
    }

    @Override
    public R2 addGoodsType(Map map) {
        R2 r2 = new R2();
        Integer result = null;
        Integer goodsTypeId = (Integer) map.get("goodsTypeId");
        String goodsTypeName1 = (String)map.get("goodsTypeName1");
        String goodsTypeName2 = (String)map.get("goodsTypeName2");
        System.out.println(goodsTypeId);
        System.out.println(goodsTypeName1);
        System.out.println(goodsTypeName2);
        Map map1 = goodsTypeMapper.queryGoodsTypeName(goodsTypeName2);
        if(map1 != null){
            r2.setCode(500);
            r2.setMsg("该分类已存在");
            return r2;
        }
        if(goodsTypeId != null){
           result = goodsTypeMapper.addGoodsType(goodsTypeId,goodsTypeName2);
           Integer typeId = goodsTypeMapper.queryGoodsTypeIdFir(goodsTypeName2);
           Integer res = goodsTypeMapper.addKey(typeId);
        }else{
            Map map2 = goodsTypeMapper.queryGoodsTypeName(goodsTypeName1);
            if(map2 != null){
                r2.setCode(500);
                r2.setMsg("该分类已存在");
                return r2;
            }else{
                Integer goodsPid = 0;
                Integer res = goodsTypeMapper.addGoodsType(goodsPid,goodsTypeName1);
                if(res != null){
                    Integer goodsTypeIdFir = goodsTypeMapper.queryGoodsTypeIdFir(goodsTypeName1);
                    result = goodsTypeMapper.addGoodsType(goodsTypeIdFir,goodsTypeName2);
                }
            }

        }

        if(result != 0){
            r2.setCode(200);
            r2.setMsg("添加成功");
            return r2;
        }else {

            return r2;
        }
    }

    @Override
    public R2 delGoodsType(Map map) {
        R2 r2 = new R2();
        Integer result = goodsTypeMapper.delGoodsType(map);
        if(result != 0){
            r2.setCode(200);
            r2.setMsg("删除成功");
        }else {
            r2.setCode(500);
            r2.setMsg("添加失败");
        }
        return r2;
    }


}
